home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Interactive 7
/
PC World Interactive 7.iso
/
program
/
qbprog.EXE
/
KODLA.BAS
< prev
next >
Wrap
BASIC Source File
|
1980-01-10
|
4KB
|
131 lines
DECLARE SUB GeriKodla (Yer, Tip$)
DECLARE SUB Kodla (A$)
DECLARE SUB Kontrol (D$)
SCREEN 2: SCREEN 0: COLOR 7, 1: CLS
A$ = COMMAND$
IF A$ = "" THEN
PRINT "Program ÿnternet üzerinde dosyalarì mektup olarak göndermek";
PRINT "için kodlar"
PRINT "Programì ƒöyle kullanìn:≈KODLA DOSYA.ADI≈"
END
END IF
OPEN A$ FOR BINARY AS #1
IF LOF(1) = 0 THEN CLOSE : KILL A$: PRINT A$; " bulunamadì!!": END
Kontrol (A$)
SUB GeriKodla (Yer, Tip$)
A$ = SPACE$(4096): GET #1, 1, A$
Yer2 = INSTR(Yer, A$, " "): Yer3 = INSTR(Yer2, A$, CHR$(10))
Dosya$ = MID$(A$, Yer, Yer2 - Yer)
Buyukluk = VAL(MID$(A$, Yer2, Yer3 - Yer2))
SEEK #1, Yer3 + 2: Yer = 0
OPEN Dosya$ FOR BINARY AS #2
IF LOF(2) <> 0 THEN
PRINT Dosya$; " isminde bir dosya bulundu!!! Üstüne yazayìm mì? E/H"
DO
A$ = INKEY$
SELECT CASE A$
CASE "E", "e"
CLOSE #2: KILL Dosya$
OPEN Dosya$ FOR BINARY AS #2: CLS : EXIT DO
CASE "H", "h"
END
END SELECT
LOOP
END IF
LOCATE 1, 1
PRINT Dosya$; Buyukluk; " Geri kodlama yapìlìyor % 00";
Sutun = POS(0) - 3
DO
Yer = Yer + 4
A$ = " ": GET #1, , A$: Toplam# = (ASC(A$) - 32) * 262144#
A$ = " ": GET #1, , A$: Toplam# = Toplam# + (ASC(A$) - 32) * 4096#
A$ = " ": GET #1, , A$: Toplam# = Toplam# + (ASC(A$) - 32) * 64
A$ = " ": GET #1, , A$: Toplam# = Toplam# + ASC(A$) - 32
Top = Toplam# \ 65536#: A$ = CHR$(Top): Toplam# = Toplam# - Top * 65536#
Top = Toplam# \ 256#: A$ = CHR$(Top) + A$: Toplam# = Toplam# - Top * 256#
A$ = CHR$(Toplam#) + A$
IF LOF(2) < Buyukluk - 3 THEN
PUT #2, , A$
ELSE
A$ = MID$(A$, 1, Buyukluk - LOF(2)): PUT #2, , A$: EXIT DO
END IF
LOCATE 1, Sutun: COLOR 14, 1: PRINT LOF(2) * 100 \ Buyukluk;
IF Yer = 60 THEN A$ = Tip$: GET #1, , A$: Yer = 0
LOOP
PRINT : PRINT "Dönüƒtürme tamamlandì.": END
END SUB
SUB Kodla (A$)
Yer = INSTR(A$, ".") - 1: IF Yer = -1 THEN Yer = LEN(A$)
B$ = LEFT$(A$, Yer) + ".KOD"
OPEN B$ FOR BINARY AS #2
IF LOF(2) <> 0 THEN
PRINT B$; " olarak kodlanmìƒ olabilir üstüne yazayìm mì? E/H"
DO
C$ = INKEY$
SELECT CASE C$
CASE "E", "e"
CLOSE #2: KILL B$: OPEN B$ FOR BINARY AS #2: CLS : EXIT DO
CASE "H", "h"
END
END SELECT
LOOP
END IF
LOCATE 1, 1: PRINT A$; " Kodlama yapìlìyor % 00 "; B$; " olarak..";
Sutun = POS(0) - LEN(B$) - 14: COLOR 14, 1
Enter$ = CHR$(13) + CHR$(10): Son$ = Enter$ + "G"
A$ = "Girdi " + A$ + STR$(LOF(1)) + Son$: PUT #2, , A$: Yer = 0
SEEK #1, 1: Yer = 0
DO
IF LOC(1) = LOF(1) THEN EXIT DO
LOCATE 1, Sutun: PRINT LOC(1) * 100 \ LOF(1);
A$ = " ": GET #1, , A$: Toplam# = ASC(A$)
A$ = " ": GET #1, , A$: Toplam# = Toplam# + ASC(A$) * 256#
A$ = " ": GET #1, , A$: Toplam# = Toplam# + ASC(A$) * 65536#
Yer = Yer + 4
Top = Toplam# \ 262144#: A$ = CHR$(Top + 32): PUT #2, , A$
Toplam# = Toplam# - Top * 262144#
Top = Toplam# \ 4096#: A$ = CHR$(Top + 32): PUT #2, , A$
Toplam# = Toplam# - Top * 4096#
Top = Toplam# \ 64#: A$ = CHR$(Top + 32): PUT #2, , A$
Toplam# = Toplam# - Top * 64#
A$ = CHR$(Toplam# + 32): PUT #2, , A$
IF Yer = 60 THEN Yer = 0: PUT #2, , Son$
LOOP
A$ = Enter$ + "Bitti" + Enter$: PUT #2, , A$: PRINT
PRINT "Mektup formatìna dönüƒtürüldü...": END
END SUB
SUB Kontrol (D$)
Yer = 1
DO
A$ = SPACE$(4096): GET #1, 1, A$: Yer = INSTR(Yer, A$, "Girdi ") + 6
IF Yer <= 6 THEN Kodla (D$)
Yer2 = INSTR(Yer, A$, " "): Yer3 = INSTR(Yer2, A$, CHR$(10))
SELECT CASE MID$(A$, Yer3 - 1, 1)
CASE CHR$(13)
Tip$ = " "
Atla = 63
CASE ELSE
Tip$ = " "
Atla = 62
END SELECT
Evet = 1
FOR i = Yer3 + 1 TO Yer3 + 1 + Atla * 5 STEP Atla
IF i > LOF(1) THEN EXIT FOR
IF MID$(A$, i, 1) <> "G" THEN Evet = 0
NEXT
IF Evet = 1 THEN CALL GeriKodla(Yer, Tip$)
LOOP
END SUB